Software Development
12.1 Program Development Life cycle
Candidates should be able to:
- Show understanding of the purpose of a development life cycle
- Show understanding of the need for different development life cycles depending on the program being developed
- Describe the principles, benefits and drawbacks of each type of life cycle
- Show understanding of the analysis, design, coding, testing and maintenance stages in the program development life cycle
Notes and guidance
Including: waterfall, iterative, rapid application development (RAD)
12.2 Program Design
Candidates should be able to:
- Use a structure chart to decompose a problem into sub-tasks and express the parameters passed between the various modules / procedures / functions which are part of the algorithm design
- Show understanding of the purpose of state-transition diagrams to document an algorithm
Notes and guidance
- Describe the purpose of a structure chart
- Construct a structure chart for a given problem
- Derive equivalent pseudocode from a structure chart
12.3 Program Testing and Maintenance
Candidates should be able to:
- Show understanding of ways of exposing and avoiding faults in programs
- Locate and identify the different types of errors
Notes and guidance
- syntax errors
- logic errors
- run-time errors
- Correct identified errors
- Show understanding of the methods of testing available and select appropriate data for a given method
Notes and guidance
Including dry run, walkthrough, white-box, black- box, integration, alpha, beta, acceptance, stub
- Show understanding of the need for a test strategy and test plan and their likely contents
- Choose appropriate test data for a test plan
Notes and guidance
Including normal, abnormal and extreme/boundary
- Show understanding of the need for continuing maintenance of a system and the differences between each type of maintenance
Notes and guidance
Including perfective, adaptive, corrective maintenance
- Analyse an existing program and make amendments to enhance functionality